Date: Tue, 14 Jan 1997 20:29:20 GMT
Server: NCSA/1.5
Content-type: text/html

<HTML>
<HEAD><TITLE> BU CAS CS 525: Compiler Design---Syllabus </TITLE></HEAD>
<BODY>
<center>
<H2> 
Syllabus for CS525
</h2>
<h3>
Summer Session I, 1996
</H3>
</center>


<h3> Instructor:<!WA0><A href="http://www.cs.bu.edu/faculty/snyder/home.html"> W<font size=3>ayne</font> 
S<font size=3>nyder</font></A></h3>

<UL type=circle>
<LI> Office: MCS 280
<li>  Office Phone: 353-8925
<li> email: <!WA1><a href=mailto:snyder@cs"> snyder </a>
<li> Office hours: Tues, Wed, Thurs 1:00 -- 1:45
</UL>

<h3> Prerequisites:</h3> [ (CS320 or CS520) and CS305  ] or Equivalent
(see instructor).


<h3> Time and Place:</h3> MTWR 11--1, room MCS B33


<h3> Textbook:</h3> <i> Compilers: Principles, Techniques, and Tools</i>, by
Aho, Sethi, and Ullman is required, and 
<i>l Lex & Yacc</i> by Levine, Mason, and Brown (O'Reilly & Associates Inc.)
is recommended for the project.
I shall occasionally hand out
notes on topics, such as attribute grammars and attribute
evaluation, which are not covered sufficiently formally in the text.
I will also occasionally make materials
(such as handouts and assignments) available over the World Wide Web.


 
<h3> Assignments and Tests:</h3> There will be approximately 4 problem 
sets assigned during the course, a midterm, and a cummulative
two hour final. There will also be a programming project which you
will start by yourself, and finish in
groups of 2--3; the project is to implement a 
small compiler for a subset of Pascal, using the compiler
construction tools available in Unix (Lex and Yacc).
The project will be broken into 3 -- 4 pieces, due 
separately. 
Your final grade will
be determined <i> approximately</i> as follows: problem sets -- 25%, 
project -- 25%, midterm -- 20%, 
final -- 30%. No makeup tests will be given and there will be a 
penalty of 10% a day for late assignments and projects. Projects and
assignments are due at 5pm on the due date under my office door.


<h3> Topics:</h3> This course is an introduction to
one side of the rather large field of the implementation of
programming languages. We will only cover the theory of
compiler design for imperative languages.
For the most part we will follow the textbook, covering
the major part of chapters 1 -- 9. If time permits, I will
cover some material in chapter 10 as well. In the past this course
has emphasized theory over practice (since that is my interest), and
we have not spent much time on code generation. This time I will
try to save some time earlier by covering fewer topics in lexical analysis
and parsing, and spending more class time on code generation for
a hypothetical machine. The project will reflect the material
covered, and we will try to get to the point of actual code generation
for Pascal programs (without structured data or procedures).

 <h3> Note:</h3>
You should periodically read your mail, and look at the main
cs525 web
page to get messages about changes in
office hours, corrections to homeworks or projects, etc. 
I will try to answer mail
sent to me in a timely fashion, but this is not always possible;
if I haven't responded to a mail message within 24 hours, catch me
after class or in office hours instead. 









</BODY>
</HTML>

